package com.turnengine.client.local.location.bean;

import com.javabi.codebuilder.generated.IGeneratedBean;
import com.turnengine.client.local.location.enums.LocationSignup;
import com.turnengine.client.local.unit.bean.IUnitCount;
import java.util.List;

/**
 * The I Location.
 */
public interface ILocation extends IGeneratedBean, Comparable<ILocation> {

	/**
	 * Returns the id.
	 * @return the id.
	 */
	int getId();

	/**
	 * Returns the name.
	 * @return the name.
	 */
	String getName();

	/**
	 * Returns the group id.
	 * @return the group id.
	 */
	int getGroupId();

	/**
	 * Returns the player id.
	 * @return the player id.
	 */
	int getPlayerId();

	/**
	 * Returns the signup.
	 * @return the signup.
	 */
	LocationSignup getSignup();

	/**
	 * Returns the signup faction id.
	 * @return the signup faction id.
	 */
	int getSignupFactionId();

	/**
	 * Returns the coordinates.
	 * @return the coordinates.
	 */
	int[] getCoordinates();

	/**
	 * Returns the location unit list.
	 * @return the location unit list.
	 */
	List<IUnitCount> getLocationUnitList();

	/**
	 * Returns the mobile unit list.
	 * @return the mobile unit list.
	 */
	List<IUnitCount> getMobileUnitList();

	/**
	 * Sets the id.
	 * @param id the id to set.
	 */
	void setId(int id);

	/**
	 * Sets the name.
	 * @param name the name to set.
	 */
	void setName(String name);

	/**
	 * Sets the group id.
	 * @param groupId the group id to set.
	 */
	void setGroupId(int groupId);

	/**
	 * Sets the player id.
	 * @param playerId the player id to set.
	 */
	void setPlayerId(int playerId);

	/**
	 * Sets the signup.
	 * @param signup the signup to set.
	 */
	void setSignup(LocationSignup signup);

	/**
	 * Sets the signup faction id.
	 * @param signupFactionId the signup faction id to set.
	 */
	void setSignupFactionId(int signupFactionId);

	/**
	 * Sets the coordinates.
	 * @param coordinates the coordinates to set.
	 */
	void setCoordinates(int[] coordinates);

	/**
	 * Sets the location unit list.
	 * @param locationUnitList the location unit list to set.
	 */
	void setLocationUnitList(List<IUnitCount> locationUnitList);

	/**
	 * Sets the mobile unit list.
	 * @param mobileUnitList the mobile unit list to set.
	 */
	void setMobileUnitList(List<IUnitCount> mobileUnitList);
}
